package com.jch.ncud.view.login;

import com.jch.ncud.view.UIObject;
import javafx.fxml.FXMLLoader;
import javafx.scene.Scene;
import javafx.scene.control.Button;
import javafx.scene.control.PasswordField;
import javafx.scene.control.TextField;
import javafx.scene.image.Image;
import javafx.scene.paint.Color;
import javafx.stage.StageStyle;

import java.io.IOException;

// 登录窗口初始化
public abstract class LoginInit extends UIObject {

    // 登录窗口UI资源
    private static final String RESOURCE_NAME = "/fxml/login/login.fxml";

    // 登录窗口事件
    protected ILoginEvent loginEvent;

    // 登录窗口最小化按钮
    Button loginMin;
    // 登录窗口退出按钮
    Button loginClose;
    // 登录按钮
    Button loginButton;
    // 账户信息输入框
    TextField userId;
    // 密码信息输入框
    PasswordField userPassword;

    protected LoginInit(ILoginEvent loginEvent) {
        this.loginEvent = loginEvent;
        try {
            // 加载UI资源
            root = FXMLLoader.load(getClass().getResource(RESOURCE_NAME));
        } catch (IOException e) {
            e.printStackTrace();
        }
        // 创建场景对象
        Scene scene = new Scene(root);
        scene.setFill(Color.TRANSPARENT);
        setScene(scene); // 设置创建
        initStyle(StageStyle.TRANSPARENT); // 初始化样式
        setResizable(false);// 设置是否可以调整窗口大小
        this.getIcons().add(new Image("/fxml/login/img/system/logo.png")); // 设置图标
        obtain();
        initView();
        initEventDefine();
    }

    // 获取页面元素
    private void obtain() {
        loginMin = $("login_min", Button.class);
        loginClose = $("login_close", Button.class);
        loginButton = $("login_button", Button.class);
        userId = $("userId", TextField.class);
        userPassword = $("userPassword", PasswordField.class);
    }
}
